import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import ElementUI from 'element-ui';
import "./assets/style/public .less"
import bus from "./utils/eventBus.js"
Vue.prototype.$bus = bus;
import 'element-ui/lib/theme-chalk/index.css';
import store from "./store";
import qfSubMenu from "qf-sub-menu"
Vue.use(qfSubMenu)
Vue.use(ElementUI);
Vue.config.productionTip = false;
/* 使用阿里图标 symbol  手动创建script标签*/
let script = document.createElement('script')
script.src = '//at.alicdn.com/t/font_2691927_vkbbu4fhtn7.js'
document.documentElement.appendChild(script)


/* 把用户菜单放到全局 因为刷新页面菜单灰丢失 */
/* 路由守卫 */
router.beforeEach((to, from, next) => {
    let token = localStorage.getItem("lp-token")

    if (!token) {
        if (to.path == "/login") {
            next()
        } else {
            next({ path: '/login' })
        }


    } else {
        //已经登入的情况
        // next()
        //判断用户菜单有没有
        if (store.state.sideMenu.length === 0) {
            //没有生成

            store.dispatch("FETCH_MENU_LIST")
                .then(() => {

                    next({ path: to.path }) //这里要注意, next里面要传参数即要进入的页面的路由信息，因为next传参数后，当前要进入的路由会被废止，转而进入参数对应的路由，虽然是同一个路由，这么做主要是为了确保addRoutes生效了。
                })
        } else {
            next()
        }
    }
})


//使用后置钩子拦截路由
router.afterEach(function(to, from) {
    let crubmsData = [...to.matched]

    crubmsData.splice(0, 1)
    store.commit('SET_CRUBMS', crubmsData)
})

new Vue({
    router,
    store,
    render: (h) => h(App),
}).$mount("#app");